#include <stdlib.h>

//
#include "at32f4xx.h"
#include "tarm_uart.h"

#include "tarm_io.h"

void SteeringIO_Init(void)
{
	GPIO_InitType GPIO_InitStructure;
	/*Enable the LED Clock*/
	RCC_APB2PeriphClockCmd(RCC_APB2PERIPH_GPIOA, ENABLE);
    RCC_APB2PeriphClockCmd(RCC_APB2PERIPH_GPIOB, ENABLE);
    RCC_APB2PeriphClockCmd(RCC_APB2PERIPH_GPIOC, ENABLE);
    RCC_APB2PeriphClockCmd(RCC_APB2PERIPH_GPIOE, ENABLE);
    RCC_APB2PeriphClockCmd(RCC_APB2PERIPH_AFIO, ENABLE);
    GPIO_PinsRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);

	/*Configure the LED pin as ouput push-pull*/
	GPIO_StructInit(&GPIO_InitStructure);
	GPIO_InitStructure.GPIO_Pins = GPIO_Pins_10|GPIO_Pins_8|GPIO_Pins_9;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT_PP;
	GPIO_InitStructure.GPIO_MaxSpeed = GPIO_MaxSpeed_50MHz;
	GPIO_Init(GPIOA, &GPIO_InitStructure);

    GPIO_InitStructure.GPIO_Pins = GPIO_Pins_0|GPIO_Pins_3|GPIO_Pins_5|GPIO_Pins_4|GPIO_Pins_10;
    GPIO_Init(GPIOB, &GPIO_InitStructure);
    SYSLED_SET;

//    GPIO_InitStructure.GPIO_Pins = GPIO_Pins_3|GPIO_Pins_5;
//    GPIO_Init(GPIOE, &GPIO_InitStructure);
//    GPIOE->BRE = GPIO_Pins_3|GPIO_Pins_5;

//    GPIO_InitStructure.GPIO_Pins = X_LIM_PIN;
//    GPIO_Init(X_LIM_PORT, &GPIO_InitStructure);
//
//    GPIO_InitStructure.GPIO_Pins = Y_LIM_PIN;
//    GPIO_Init(Y_LIM_PORT, &GPIO_InitStructure);

    //input
    GPIO_InitStructure.GPIO_Pins = X_LIM_PIN;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_PD;
    GPIO_Init(X_LIM_PORT, &GPIO_InitStructure);

    GPIO_InitStructure.GPIO_Pins = Y_LIM_PIN;
    GPIO_Init(Y_LIM_PORT, &GPIO_InitStructure);
}

